Skip to main content

Tâche d'événement externe

Le mécanisme "Tâche événement externe" permet de déclencher une tâche via un événement externe. Les "Unix Domain Sockets" sont utilisés pour la séparation des processus. Le fichier socket correspondant est situé dans sur le système cible selon le nom choisi par l'utilisateur pour l'événement externe :

/var/run/codesysextension/eventtasks/<EventName>.sock

Créer une tâche de type "Evénement externe"

  1. Créer un événement externe.

    Dans l'arborescence des appareils, sélectionnez Configuration de la tâche et dans le menu contextuel cliquez sur Gérer les événements externes (1). Dans le Gérer les événements externes boîte de dialogue (2), ajoutez le nouvel événement. Le nom ne doit pas contenir d'espaces ni de caractères spéciaux.

    _rtslext_img_add_event.png
    _rtslext_img_add_event2.png
  2. Configurez une tâche en tant que nouvelle tâche d'événement externe :

    Dans le Configuration de la tâche zone de liste, sélectionnez une tâche. Dans le Taper zone de liste, sélectionnez le Externe type de tâche (3). Attribuez le Événement externe (4) à la tâche.

    _rtslext_img_taskconfiguration1.png
    _rtslex_img_taskconfiguration2.png

L'exemple de projet fourni ExternalEventTask.projectExternalEventTask.project contient la configuration décrite ci-dessus. La tâche est confiée au MONÉVÉNEMENT1 événement extérieur et le dossier /var/run/codesysextension/eventtasks/MYEVENT1.sock est créé sur le système.

Avec l'outil de ligne de commande "socat", vous pouvez très facilement faire fonctionner cette interface, par exemple avec la commande suivante :

$ socat - UNIX-CLIENT:/var/run/codesysextension/eventtasks/MYEVENT1.sock

Cela établit une connexion socket dans la fenêtre du terminal et vous permet d'envoyer des messages individuels au socket.

A chaque message, la tâche configurée dans l'automate est déclenchée. Le contenu du message n'est pas pertinent pour déclencher l'événement externe. La longueur du message est spécifiée sur 1 octet.

Utilisation de l'interface uniquement en tant que membre de Linux codesysuser groupe d'utilisateurs

Oui

Séparation de processus

Oui